/**
 * 单例模式测试
 *
 * @author Tanzs
 * @Date 2019/10/23
 */
public class SingletonDemo {
    //饿汉单例模式,最开始就new出来   线程安全，但耗费资源
    //懒汉单例模式，判断为空的时候再new   线程不安全，需加同步锁(单锁)    性能不好，不推荐
    //双重锁   判断为空的时候再加同步锁(以下为该种)
    private static SingletonDemo instance;

    private SingletonDemo(){}

    public static  SingletonDemo getInstance(){
        if (instance==null){
            synchronized (SingletonDemo.class){
                if (instance==null){
                    return new SingletonDemo();
                }
            }
        }
            return instance;
    }

    public void showMessage(){
        System.out.println("单列模式");
    }

    public static void main(String[] args) {
        SingletonDemo object=SingletonDemo.getInstance();
        object.showMessage();
    }
}